//search模块的小仓库
import { reqGetSearchInfo } from "@/api";

//准备state——用于存储数据
const state = {
    searchList: {}
}

//准备mutations——用于操作数据（state）
const mutations = {
    GETSEARCHLIST(state, searchList) {
        state.searchList = searchList;
    }

}

//准备actions——用于响应组件中的动作
const actions = {
    //获取搜索模块数据
    async getSearchList({ commit }, params = {}) {
        //params参数是dispath时传递的第二个参数，至少为空对象
        //reqGetSearchInfo获取服务器数据时，至少传递一个参数（空对象）
        let result = await reqGetSearchInfo(params);
        if (result.code == 200) {
            commit("GETSEARCHLIST", result.data);
        }
    }
}

//准备getters——用于将state中的数据进行加工(类似计算属性，为了简化数据)
const getters = {
    goodsList(state) {//此参数是当前仓库中的state
        return state.searchList.goodsList || []; //如网络较差可能返回underfunded用来遍历数组，所以或一个空数组应对这种情况
    },
    

}
//暴露Store类的一个实例
export default ({
    actions,
    mutations,
    state,
    getters,
})
